package org.example.spring.ioc.bean;


import lombok.Data;
import lombok.ToString;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.PropertySource;
import org.springframework.stereotype.Component;

import java.util.UUID;

//1.classpath:cat.properties:从自己的项目类路径下找
//2.classpath*:Log4j-charsets.properties从所有包类路径下所有jar包中找
@PropertySource("classpath:cat.properties")//说明属性条件，把指定文件导入容器中，供我们使用
@Component
@Data
@ToString
public class Cat {
    //@Autowired:自动注入组件，无法自动注入基本类型

    /*
    * @Value:
    *       1.@Value("字面值")：直接赋值
    *       2.@Value("${key}"):动态从配置文件中取出某一项的值
    *       3.#Value("#{SpEL}"):Spring Expression Language，Spring表达式语言
    * */
    @Value("小咪")
    private String name;

    @Value("${cat.age:18}")//@Value（"${...:默认值}")：从配置文件中取不到时用默认值
    private int age;

    @Value("#{10*20}")
    private String master;

    @Value("#{T(java.util.UUID).randomUUID().toString()}")//T:获取类对象
    private String id;

    @Value("#{'Hello World'.substring(0,5)}")
    private String say;

    public Cat(){
        String id = UUID.randomUUID().toString();
    }

}
